package com.socket.web;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * Created by jett on 2018/6/6.
 */

public class FileUtil {


  /**
   * 创建目录
   *
   * @param path
   * @return
   */
  public static File createDirFile(String path) {
    File dir = new File(path);
    if (!dir.exists()) {
      dir.mkdirs();
    }
    return dir;
  }
  
  /**
   * 创建文件
   * @param path
   * @return
   */
  public static File createFile(String path) {
	    File file = new File(path);
	    if (!file.exists()) {
	    	try {
				file.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
	    }
	    return file;
	  }

  /**
   * 文件大小转换
   * @param size
   * @return
   */
  public static String getPrintSize(long size) {
    //如果字节数少于1024，则直接以B为单位，否则先除于1024，后3位因太少无意义
    if (size < 1024) {
      return String.valueOf(size) + "B";
    } else {
      size = size / 1024;
    }
    //如果原字节数除于1024之后，少于1024，则可以直接以KB作为单位
    //因为还没有到达要使用另一个单位的时候
    //接下去以此类推
    if (size < 1024) {
      return String.valueOf(size) + "KB";
    } else {
      size = size / 1024;
    }
    if (size < 1024) {
      //因为如果以MB为单位的话，要保留最后1位小数，
      //因此，把此数乘以100之后再取余
      size = size * 100;
      return String.valueOf((size / 100)) + "."
              + String.valueOf((size % 100)) + "MB";
    } else {
      //否则如果要以GB为单位的，先除于1024再作同样的处理
      size = size * 100 / 1024;
      return String.valueOf((size / 100)) + "."
              + String.valueOf((size % 100)) + "GB";
    }
  }
}
